package com.cw.DesignModel23.Behavioral.InterpreterPattern;

/**
 * 乘法解释器
 *      实现 Interpreter 解释器 接口
 * 用于实现乘法计算
 *      两个乘数分别也都是一个解释器
 */
public class MultiInterpreter implements Interpreter {
    /**
     * 第一个表达式
     */
    private Interpreter firstInterpreter;

    /**
     * 第二个表达式
     */
    private Interpreter secondInterpreter;

    public MultiInterpreter(Interpreter firstInterpreter,
                            Interpreter secondInterpreter) {
        this.firstInterpreter = firstInterpreter;
        this.secondInterpreter = secondInterpreter;
    }

    @Override
    public int interpret() {
        return this.firstInterpreter.interpret() *
                this.secondInterpreter.interpret();
    }

    @Override
    public String toString() {
        return "*";
    }
}

